using System;
using Server;
using Server.Mobiles;

namespace Server.Items
{
	public class ParoxysmusTele : Teleporter
	{			
		[Constructable]
		public ParoxysmusTele() : base( new Point3D( 6222, 335, 60 ), Map.Trammel )
		{
		}
		
		public ParoxysmusTele( Serial serial ) : base( serial )
		{
		}
	
		public override bool OnMoveOver( Mobile m )
		{
			if ( m.NetState == null || !m.NetState.SupportsExpansion( Expansion.ML ) )
			{
				m.SendLocalizedMessage( 1072608 ); // You must upgrade to the Mondain's Legacy expansion in order to enter here.				
				return true;
			}	
			else if ( !MondainsLegacy.PalaceOfParoxysmus && (int) m.AccessLevel < (int) AccessLevel.GameMaster )
			{
				m.SendLocalizedMessage( 1042753, "Palace of Paroxysmus" ); // ~1_SOMETHING~ has been temporarily disabled.
				return true;
			}
		
			if ( m.Backpack != null )
			{
				Item rope = m.Backpack.FindItemByType( typeof( MagicalRope ), true );
				
				if ( rope == null )
					rope = m.Backpack.FindItemByType( typeof( AcidProofRope ), true );
			
				if ( rope != null && !rope.Deleted )
				{
					if ( Utility.RandomDouble() < 0.3 )
					{
						m.SendLocalizedMessage( 1075097 ); // Your rope is severely damaged by the acidic environment.  You're lucky to have made it safely to the ground.
						rope.Delete();
					}
					else
						m.SendLocalizedMessage( 1075098 ); // Your rope has been weakened by the acidic environment.
					
					return base.OnMoveOver( m );					
				}
			}
			else
				m.SendLocalizedMessage( 1074272 ); // You have no way to lower yourself safely into the enormous sinkhole.
			
			return true;	
		}		
		
		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 0 ); // version
		}
		
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			
			int version = reader.ReadInt();
		}
	}
}